Due to the rapid adaptation of smartphones and otherwise availability of geolocation techniques (e.g., GPS/WiFi/cell tower triangulation), it is now easy to gather spatiotemporal data on hundreds of millions of entities in real time and analyze the data to improve business processes and optimize services and infrastructure in a number of different industries. Much of this data (e.g., due to WiFi/cell tower triangulation/GPS errors) has uncertainty associated with it and an important challenge is to map these data to a graticule (grid in the Geographic Coordinate System).
Certain conventional techniques such as spatial grid indexes in commercial databases (e.g., DB2, INFORMIX, MICROSOFT SQL) are typically fixed at index creation time and are typically independent of the input geometries (and associated uncertainty). In addition, MongoDB's geospatial component uses a graticule based dynamic indexing that is believed to include certain inaccuracies which may return incorrect results.
Also, much memory consumption incurs in storing geospatial objects whose specification can consist of thousands of points on Earth. Conventional solutions encode a geodetic point using two double values (one for latitude and another for longitude) taking a total of 128 bits.
Popular open source Geographical Information Systems (GIS) packages typically do not use any compression of geometrical objects and typically require at least 128 bits to store a point.
Another example of a conventional process is text encoding of a point. The goal of this technique is to give a user friendly representation of a location on Earth. A text encoding may be used since street addresses are typically long (also, for many locations there is no address). A location can always be specified by its latitude and longitude, however latitudes and longitudes typically need to be specified to 6-8 decimal places (a total of 20+ digits to be entered including possibly minus signs, commas etc.) and there is a chance of switching between latitude and longitude, and hence the use of latitude and longitude is not considered very user friendly. For these reasons, various approaches to user friendly text encoding (e.g., suitable for URL specification) have been proposed.
The above-described text encoding has been customized for user friendly representation of locations. The above-described text encoding further converts bits to human readable strings (at the loss of flexibility in storage needed).
Another example of a conventional process is binary encoding of geometries. Several Geographical Information Systems (GIS) systems (e.g., INFORMIX) use binary encoding of geometries in their software implementations. These binary encodings allow different geometric objects to be passed back and forth as byte arrays regardless of what these geometries are (e.g., a point, a line segment, a polygon, etc.). It also provides flexibility to the software designer to later change how geometries are internally stored in the software. IBM's geospatial software INFORMIX spatial database and STOCKHOLM congestion pricing application developed on INFOSPHERE STREAMS take this approach. These conventional binary encoding approaches represent serialization/serialization of data as opposed to encodings for the purpose of compressing data. With these approaches, using a Huffman Coding to compress, for example, binary encoding of 2 km×2 km polygon is unlikely to yield any significant size benefit.
Another example of a conventional process is given by a geohash.